home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1992 June: ROMin Holiday / ADC Developer CD (1992-06) (''ROMin Holiday'')_iso / Developer Connection - 06-1992.iso / Development Platforms / Apple II / Essentials / MPW IIGS Interfaces / CIIGSIncludes / Menu.h < prev    next >
Encoding:
C/C++ Source or Header  |  1990-04-03  |  7.4 KB  |  198 lines  |  [TEXT/MPS ]

  1. /********************************************
  2. ; File: Menu.h
  3. ;
  4. ;
  5. ; Copyright Apple Computer, Inc.1986-90
  6. ; All Rights Reserved
  7. ;
  8. ********************************************/
  9. #ifndef __TYPES__
  10. #include <TYPES.h>
  11. #endif
  12.  
  13. #ifndef __QUICKDRAW__
  14. #include <QUICKDRAW.h>
  15. #endif
  16.  
  17. #ifndef __EVENT__
  18. #include <EVENT.h>
  19. #endif
  20.  
  21. #ifndef __CONTROL__
  22. #include <CONTROL.h>
  23. #endif
  24.  
  25. #ifndef __WINDOW__
  26. #include <WINDOW.h>
  27. #endif
  28.  
  29. #ifndef __MENU__
  30. #define __MENU__
  31.  
  32.  
  33. /* MenuDefProc Codes */
  34. #define mDrawMsg 0x0000
  35. #define mChooseMsg 0x0001
  36. #define mSizeMsg 0x0002
  37. #define mDrawTitle 0x0003
  38. #define mDrawMItem 0x0004
  39. #define mGetMItemID 0x0005
  40.  
  41. /* Reference Flags */
  42. #define menuRefPtr 0x0000
  43. #define mRefHandle 0x4000
  44. #define mRefResource 0x8000
  45.  
  46. /* Menu Flags */
  47. #define menuAllowCache 0x0008
  48. #define menuCustom 0x0010
  49. #define menuXOR 0x0020
  50. #define menuDisabled 0x0080
  51. #define menuAlwaysCallMChoose 0x0100
  52.  
  53. /* Item Flags */
  54. #define itemBold 0x0001
  55. #define itemItalic 0x0002
  56. #define itemUnderline 0x0004
  57. #define itemXOR 0x0020
  58. #define itemDivider 0x0040
  59. #define itemDisabled 0x0080
  60. #define itemOutline 0x0800
  61. #define itemShadow 0x1000
  62.  
  63. /* Old Menu Flags */
  64. #define mInvis 0x0004
  65. #define mCustom 0x0010
  66. #define mXor 0x0020
  67. #define mSelected 0x0040
  68. #define mDisabled 0x0080
  69.  
  70. /* MenuFlag Masks */
  71. #define menuCacheMask 0x0008
  72. #define customMenu 0x0010
  73. #define xorMItemHilite 0x0020
  74. #define xorTitleHilite 0x0020
  75. #define underMItem 0x0040
  76. #define disableItem 0x0080
  77. #define disableMenu 0x0080
  78. #define enableItem 0xFF7F
  79. #define enableMenu 0xFF7F
  80. #define noUnderMItem 0xFFBF
  81. #define colorMItemHilite 0xFFDF
  82. #define colorTitleHilite 0xFFDF
  83. #define colorReplace 0xFFDF
  84. #define standardMenu 0xFFEF
  85.  
  86. /* Other misc constants */
  87. #define type2 0x0040
  88. #ifndef mtItemRefArrayLength  /* MenuTemplate - default number of Ref's */
  89. #define mtItemRefArrayLength 0x0005
  90. #endif
  91. #ifndef mbtMenuRefArrayLength  /* MenuBarTemplate - default number of Ref's */
  92. #define mbtMenuRefArrayLength 0x0005
  93. #endif
  94. typedef CtlRec MenuBarRec, *MenuBarRecPtr, **MenuBarRecHndl;
  95. struct MenuRec {
  96.    Word menuID; /* Menu's ID number */
  97.    Word menuWidth; /* Width of menu */
  98.    Word menuHeight; /* Height of menu */
  99.    WordProcPtr menuProc; /* Menu's definition procedure */
  100.    Word menuFlag; /* Bit flags */
  101.    Word numOfItems;
  102.    Word titleWidth; /* Width of menu's title */
  103.    Pointer titleName;
  104.    Handle menuCache;
  105. } ;
  106. typedef struct MenuRec MenuRec, *MenuRecPtr, **MenuRecHndl;
  107. struct MenuItemTemplate {
  108.    Word version; /* Version number (must be 0) */
  109.    Word itemID; /* Menu item ID */
  110.    Byte itemChar; /* Primary keystroke character */
  111.    Byte itemAltChar; /* Alternate keystroke character */
  112.    Word itemCheck; /* Character code for checked items */
  113.    Word itemFlag; /* Menu item flag word */
  114.    Ref itemTitleRef; /* Reference to item title string */
  115. } ;
  116. typedef struct MenuItemTemplate MenuItemTemplate;
  117. struct MenuTemplate {
  118.    Word version; /* Version number (must be 0) */
  119.    Word menuID; /* Menu ID */
  120.    Word menuFlag; /* Menu flag word */
  121.    Ref menuTitleRef; /* Reference to menu title string */
  122.    Ref itemRefArray[mtItemRefArrayLength]; /* mtItemRefArrayLength references to menu items  */
  123. } ;
  124. typedef struct MenuTemplate MenuTemplate;
  125. struct MenuBarTemplate {
  126.    Word version; /* Version number (must be 0) */
  127.    Word menuFlag; /* MenuBar flag word */
  128.    Ref menuRefArray[mbtMenuRefArrayLength]; /* mbtMenuRefArrayLength references to menus */
  129. } ;
  130. typedef struct MenuBarTemplate MenuBarTemplate;
  131. extern pascal void CalcMenuSize() inline(0x1C0F,dispatcher);
  132. extern pascal void CheckMItem() inline(0x320F,dispatcher);
  133. extern pascal Word CountMItems() inline(0x140F,dispatcher);
  134. extern pascal void DeleteMenu() inline(0x0E0F,dispatcher);
  135. extern pascal void DeleteMItem() inline(0x100F,dispatcher);
  136. extern pascal void DisableMItem() inline(0x310F,dispatcher);
  137. extern pascal void DisposeMenu() inline(0x2E0F,dispatcher);
  138. extern pascal void DrawMenuBar() inline(0x2A0F,dispatcher);
  139. extern pascal void EnableMItem() inline(0x300F,dispatcher);
  140. extern pascal Word FixMenuBar () inline(0x130F,dispatcher);
  141. extern pascal void FlashMenuBar () inline(0x0C0F,dispatcher);
  142. extern pascal LongWord GetBarColors () inline(0x180F,dispatcher);
  143. extern pascal MenuBarRecHndl GetMenuBar () inline(0x0A0F,dispatcher);
  144. extern pascal Word GetMenuFlag () inline(0x200F,dispatcher);
  145. extern pascal GrafPortPtr GetMenuMgrPort () inline(0x1B0F,dispatcher);
  146. extern pascal Pointer GetMenuTitle () inline(0x220F,dispatcher);
  147. extern pascal MenuRecHndl GetMHandle () inline(0x160F,dispatcher);
  148. extern pascal StringPtr GetMItem () inline(0x250F,dispatcher);
  149. extern pascal Word GetMItemFlag () inline(0x270F,dispatcher);
  150. extern pascal Word GetMItemMark () inline(0x340F,dispatcher);
  151. extern pascal TextStyle GetMItemStyle () inline(0x360F,dispatcher);
  152. extern pascal Word GetMTitleStart () inline(0x1A0F,dispatcher);
  153. extern pascal Word GetMTitleWidth () inline(0x1E0F,dispatcher);
  154. extern pascal Pointer GetPopUpDefProc () inline(0x3B0F,dispatcher);
  155. extern pascal MenuBarRecHndl GetSysBar () inline(0x110F,dispatcher);
  156. extern pascal void HideMenuBar () inline(0x450F,dispatcher);
  157. extern pascal void HiliteMenu () inline(0x2C0F,dispatcher);
  158. extern pascal void InitPalette () inline(0x2F0F,dispatcher);
  159. extern pascal void InsertMenu () inline(0x0D0F,dispatcher);
  160. extern pascal void InsertMItem () inline(0x0F0F,dispatcher);
  161. extern pascal void InsertMItem2() inline(0x3F0F,dispatcher);
  162. extern pascal void MenuBootInit() inline(0x010F,dispatcher);
  163. extern pascal Word MenuGlobal () inline(0x230F,dispatcher);
  164. extern pascal void MenuKey () inline(0x090F,dispatcher);
  165. extern pascal void MenuNewRes () inline(0x290F,dispatcher);
  166. extern pascal void MenuRefresh () inline(0x0B0F,dispatcher);
  167. extern pascal void MenuReset() inline(0x050F,dispatcher);
  168. extern pascal void MenuSelect () inline(0x2B0F,dispatcher);
  169. extern pascal void MenuShutDown() inline(0x030F,dispatcher);
  170. extern pascal void MenuStartUp() inline(0x020F,dispatcher);
  171. extern pascal Boolean MenuStatus() inline(0x060F,dispatcher);
  172. extern pascal Word MenuVersion() inline(0x040F,dispatcher);
  173. extern pascal MenuRecHndl NewMenu () inline(0x2D0F,dispatcher);
  174. extern pascal MenuRecHndl NewMenu2() inline(0x3E0F,dispatcher);
  175. extern pascal MenuBarRecHndl NewMenuBar () inline(0x150F,dispatcher);
  176. extern pascal MenuBarRecHndl NewMenuBar2() inline(0x430F,dispatcher);
  177. extern pascal Word PopUpMenuSelect () inline(0x3C0F,dispatcher);
  178. extern pascal void SetBarColors () inline(0x170F,dispatcher);
  179. extern pascal void SetMenuBar () inline(0x390F,dispatcher);
  180. extern pascal void SetMenuFlag () inline(0x1F0F,dispatcher);
  181. extern pascal void SetMenuID () inline(0x370F,dispatcher);
  182. extern pascal void SetMenuTitle () inline(0x210F,dispatcher);
  183. extern pascal void SetMenuTitle2 () inline(0x400F,dispatcher);
  184. extern pascal void SetMItem () inline(0x240F,dispatcher);
  185. extern pascal void SetMItem2() inline(0x410F,dispatcher);
  186. extern pascal void SetMItemBlink () inline(0x280F,dispatcher);
  187. extern pascal void SetMItemFlag () inline(0x260F,dispatcher);
  188. extern pascal void SetMItemID () inline(0x380F,dispatcher);
  189. extern pascal void SetMItemMark () inline(0x330F,dispatcher);
  190. extern pascal void SetMItemName () inline(0x3A0F,dispatcher);
  191. extern pascal void SetMItemName2 () inline(0x420F,dispatcher);
  192. extern pascal void SetMItemStyle () inline(0x350F,dispatcher);
  193. extern pascal void SetMTitleStart () inline(0x190F,dispatcher);
  194. extern pascal void SetMTitleWidth () inline(0x1D0F,dispatcher);
  195. extern pascal void SetSysBar () inline(0x120F,dispatcher);
  196. extern pascal void ShowMenuBar() inline(0x460F,dispatcher);
  197. #endif
  198.